Constructors এবং Default Parameters দুটি গুরুত্বপূর্ণ ধারণা যা Groovy তে ক্লাস এবং অবজেক্ট তৈরি করার সময় ব্যবহৃত হয়। এগুলি কোড লেখার সময় লজিকালভাবে সুবিধাজনক হয় এবং কোডের পুনঃব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করে।
Constructor একটি বিশেষ ধরনের মেথড যা একটি ক্লাসের নতুন অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি সাধারণত ক্লাসের নামের সাথে মিল হয় এবং কোন ভ্যালু বা প্যারামিটার ছাড়া অবজেক্ট তৈরি করা হলে ডিফল্ট কন্সট্রাক্টর ব্যবহার করা হয়। Groovy তে কন্সট্রাক্টরের ব্যবহার Java এর মতোই, তবে Groovy এর বৈশিষ্ট্য অনুযায়ী এটি আরও সহজ এবং সংক্ষিপ্ত।
Groovy তে, আপনি কন্সট্রাক্টর ডিফাইন করতে পারেন যেটি প্যারামিটার গ্রহণ করে এবং অবজেক্ট ইনিশিয়ালাইজ করে। যদি আপনি কন্সট্রাক্টর ডিফাইন না করেন, Groovy স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কন্সট্রাক্টর প্রদান করে।
class Person {
String name
int age
// Constructor
Person(String name, int age) {
this.name = name
this.age = age
}
// Method to display details
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person = new Person("John", 30)
person.displayDetails() // Output: Name: John, Age: 30
এখানে Person
ক্লাসে একটি কন্সট্রাক্টর রয়েছে যা name
এবং age
প্যারামিটার গ্রহণ করে। যখন new Person("John", 30)
কল করা হয়, তখন এই কন্সট্রাক্টর ব্যবহার করে অবজেক্ট তৈরি হয়।
যদি আপনি কন্সট্রাক্টর না দেন, তবে Groovy স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কন্সট্রাক্টর প্রদান করবে যা কোনো প্যারামিটার গ্রহণ করবে না।
class Person {
String name
int age
// Default constructor
}
def person = new Person() // No parameters, default constructor used
person.name = "Alice"
person.age = 25
println "Name: $person.name, Age: $person.age" // Output: Name: Alice, Age: 25
এখানে, Person
ক্লাসে কোনো কন্সট্রাক্টর ডিফাইন না করায় Groovy একটি ডিফল্ট কন্সট্রাক্টর ব্যবহার করেছে এবং পরে ভেরিয়েবলগুলির মান সেট করা হয়েছে।
Groovy তে আপনি default parameters ব্যবহার করতে পারেন, যা ফাংশন বা কন্সট্রাক্টরের প্যারামিটারগুলির জন্য ডিফল্ট মান প্রদান করে। যদি কোনো প্যারামিটার ফাংশন বা কন্সট্রাক্টর কল করার সময় প্রদান না করা হয়, তাহলে ডিফল্ট মানটি ব্যবহার করা হবে।
class Person {
String name
int age
// Constructor with default parameters
Person(String name = "Unknown", int age = 18) {
this.name = name
this.age = age
}
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person1 = new Person("John", 30)
def person2 = new Person()
person1.displayDetails() // Output: Name: John, Age: 30
person2.displayDetails() // Output: Name: Unknown, Age: 18
এখানে, Person
ক্লাসের কন্সট্রাক্টরে ডিফল্ট মান দেওয়া হয়েছে:
name
এর ডিফল্ট মান "Unknown"
age
এর ডিফল্ট মান 18
যখন new Person()
কল করা হয়, কোনো প্যারামিটার না দেয়ার কারণে ডিফল্ট মানগুলি ব্যবহার করা হয়। আর যখন new Person("John", 30)
কল করা হয়, তখন প্রদত্ত মানগুলোই ব্যবহার করা হয়।
Groovy তে ফাংশনেও আপনি ডিফল্ট প্যারামিটার ব্যবহার করতে পারেন। এর ফলে ফাংশনে কোনো প্যারামিটার না দেওয়া হলে ডিফল্ট মান ব্যবহার করা হবে।
def greet(String name = "Guest") {
println "Hello, $name!"
}
greet("John") // Output: Hello, John!
greet() // Output: Hello, Guest!
এখানে, greet
ফাংশনে name
প্যারামিটারের জন্য একটি ডিফল্ট মান "Guest"
দেওয়া হয়েছে। যদি ফাংশন কল করার সময় name
প্রদান করা না হয়, তাহলে "Guest"
ব্যবহার হবে।
Groovy তে, যেমন Java তে, কন্সট্রাক্টর ওভারলোডিং সম্ভব। আপনি একাধিক কন্সট্রাক্টর ডিফাইন করতে পারেন যা ভিন্ন ভিন্ন প্যারামিটার সংখ্যা বা টাইপ গ্রহণ করবে। তবে, Groovy তে এটি Java এর মতো কঠিন নয়, কারণ Groovy স্বয়ংক্রিয়ভাবে কমপ্লেক্স কন্সট্রাক্টরও পরিচালনা করতে পারে।
class Person {
String name
int age
// First constructor
Person(String name) {
this.name = name
this.age = 18 // Default age
}
// Second constructor
Person(String name, int age) {
this.name = name
this.age = age
}
void displayDetails() {
println "Name: $name, Age: $age"
}
}
def person1 = new Person("John")
def person2 = new Person("Alice", 30)
person1.displayDetails() // Output: Name: John, Age: 18
person2.displayDetails() // Output: Name: Alice, Age: 30
এখানে, Person
ক্লাসে দুটি কন্সট্রাক্টর রয়েছে:
name
গ্রহণ করে এবং age
এর ডিফল্ট মান প্রদান করে।name
এবং age
উভয়ই গ্রহণ করে।এভাবে Groovy তে constructors এবং default parameters ব্যবহার করে কোডকে আরও নমনীয়, সহজ এবং পুনঃব্যবহারযোগ্য করা যায়।
common.read_more